// 模拟AI服务接口
// 实际应用中，这里可以替换为真实的后端API调用

// 模拟帖子数据库
const mockPostsDatabase = [
  {
    id: 1,
    title: '赛博朋克2077隐藏任务攻略',
    content: '在夜之城的西北角有一个隐藏任务，需要完成前置任务才能触发。这个任务会解锁特殊武器和独特的剧情体验。任务触发条件是：完成主线任务"死城"后，在小唐人街的酒吧与特定NPC对话。',
    category: '赛博朋克2077',
    likes: 128,
    created_at: '2024-01-15'
  },
  {
    id: 2,
    title: '赛博朋克2077最佳武器搭配',
    content: '本文推荐几种不同风格的武器搭配，适合不同的游戏风格。如果你喜欢潜行流，可以搭配螳螂刀和消音手枪；如果你喜欢正面硬刚，动力武器和重型手枪会是不错的选择。',
    category: '赛博朋克2077',
    likes: 95,
    created_at: '2024-01-10'
  },
  {
    id: 3,
    title: '赛博朋克2077角色build指南',
    content: '如何打造最强夜之城雇佣兵，技能点分配与装备选择全解析。本文详细介绍了街头小子、公司员工和流浪者三个出身的最佳技能加点方案，以及不同流派的专长搭配。',
    category: '赛博朋克2077',
    likes: 210,
    created_at: '2024-01-05'
  },
  {
    id: 4,
    title: '艾尔登法环新手入门指南',
    content: '作为新手，这些技巧可以帮助你更快地适应游戏节奏。包括初期武器选择、骨灰召唤使用时机、重要NPC位置以及如何避免常见陷阱。',
    category: '艾尔登法环',
    likes: 156,
    created_at: '2024-01-12'
  },
  {
    id: 5,
    title: '死亡搁浅快递路线规划',
    content: '分享几个高效的快递路线，让你的派送更加顺畅。从首都 Knot City 到 Port Knot City 的最佳路线，以及如何避开 BT 区域的技巧。',
    category: '死亡搁浅',
    likes: 87,
    created_at: '2024-01-08'
  },
  {
    id: 6,
    title: '赛博朋克2077幻影自由DLC攻略',
    content: '幻影自由DLC的全流程攻略，包括新区域 Dogtown 的探索要点、重要任务触发条件和结局选择分析。',
    category: '赛博朋克2077',
    likes: 189,
    created_at: '2024-01-18'
  },
  {
    id: 7,
    title: '艾尔登法环最强武器推荐',
    content: '详细介绍游戏中各种强力武器的获取方法、强化路线和搭配建议。从初期的君王大剑到后期的月光大剑，总有一款适合你。',
    category: '艾尔登法环',
    likes: 143,
    created_at: '2024-01-03'
  }
]

// 模拟延迟
const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms))

// 搜索相关帖子
export const searchPosts = async (query) => {
  // 模拟API延迟
  await delay(800)
  
  const lowerQuery = query.toLowerCase()
  
  // 简单的关键词匹配搜索
  const results = mockPostsDatabase.filter(post => 
    post.title.toLowerCase().includes(lowerQuery) ||
    post.content.toLowerCase().includes(lowerQuery) ||
    post.category.toLowerCase().includes(lowerQuery)
  )
  
  return results
}

// 分析用户查询并生成响应
export const analyzeQuery = async (query) => {
  // 模拟AI处理延迟
  await delay(1200)
  
  const lowerQuery = query.toLowerCase()
  
  // 提取游戏关键词
  let gameKeywords = []
  if (lowerQuery.includes('赛博朋克') || lowerQuery.includes('cyberpunk')) {
    gameKeywords.push('赛博朋克2077')
  }
  if (lowerQuery.includes('艾尔登法环') || lowerQuery.includes('elden ring')) {
    gameKeywords.push('艾尔登法环')
  }
  if (lowerQuery.includes('死亡搁浅') || lowerQuery.includes('death stranding')) {
    gameKeywords.push('死亡搁浅')
  }
  
  return {
    gameKeywords,
    isGameRelated: gameKeywords.length > 0,
    isGreeting: lowerQuery.includes('你好') || lowerQuery.includes('hi') || lowerQuery.includes('hello') || lowerQuery.includes('嗨')
  }
}

// 生成AI回复
export const generateAIResponse = async (query) => {
  // 分析查询
  const analysis = await analyzeQuery(query)
  
  // 根据分析结果生成回复
  if (analysis.isGreeting) {
    return '你好！我是游戏助手AI，我可以帮你搜索游戏相关的帖子。请告诉我你在玩什么游戏？'
  }
  
  if (analysis.isGameRelated) {
    // 搜索相关帖子
    const posts = await searchPosts(query)
    
    if (posts.length > 0) {
      let response = `我找到了${posts.length}个相关帖子：\n\n`
      
      // 限制显示最多5个结果
      posts.slice(0, 5).forEach(post => {
        response += `📝 ${post.title}\n👍 ${post.likes} 赞\n发布时间：${post.created_at}\n${post.content.substring(0, 60)}...\n\n`
      })
      
      if (posts.length > 5) {
        response += `还有${posts.length - 5}个相关帖子未显示...`
      }
      
      return response
    } else {
      return `抱歉，我没有找到关于"${analysis.gameKeywords.join('、')}"的相关帖子。请尝试其他关键词或游戏名称。`
    }
  } else {
    return '抱歉，我还在学习中。请尝试提及具体的游戏名称，我会为你搜索相关帖子。'
  }
}

// 获取AI接口配置
export const getAIConfig = () => {
  return {
    apiBaseUrl: '/api/ai', // 预留真实API路径
    maxResponseLength: 1000,
    supportedGames: ['赛博朋克2077', '艾尔登法环', '死亡搁浅']
  }
}

// 模拟API错误处理
export const handleAPIError = (error) => {
  console.error('AI服务错误:', error)
  return '抱歉，AI服务暂时不可用，请稍后再试。'
}